#pragma once
#include "..\DXAMLCommon.h"
#include "Base.h"

class ReferenceCountedBase :
	public Base
{
public: 
	static void * __stdcall operator new(XUINT32, struct IMalloc *, enum NewNoExceptionEnum, enum NewZeroMemoryEnum);
	static void * __stdcall operator new(XUINT32, struct IMalloc *, enum NewZeroMemoryEnum);
	static void * __stdcall operator new(XUINT32 cSize, struct IMalloc * pAddress);
	static void __stdcall operator delete(void * pAddress);
	unsigned long InternalAddRef();
	unsigned long InternalRelease();

private: 
	ReferenceCountedBase();
protected: 
	ReferenceCountedBase(struct IMalloc *);
	virtual ~ReferenceCountedBase();
private: 
	unsigned long m_cref;



};